const jwt = require('jsonwebtoken')
const {jwtSecretKey} = require('../config/config.default')

const auth = async (ctx, next) => {
    // 验证请求头中是否携带Token

    console.log('auth middleware')
    // 获取请求头中的Token
    const token =ctx.request.header.authorization && (ctx.request.header.authorization).split(' ')[1]
    // 验证Token是否正确
    console.log("=>(auth.js:11) token", token);
    if (token) {
        // 验证 token 是否生效
        const result = jwt.verify(token, jwtSecretKey)
        console.log("=>(auth.js:15) result", result);
        if (result.id) {
            ctx.state.authUser = result
            // 验证通过，继续执行后续操作
            await next();
        } else {
            ctx.body = {
                code: 401,
                message: '登录已过期，请重新登录'
            }
        }
    } else {
        // 验证失败，返回错误信息
        ctx.body = {
            code: 401,
            message: '请登录再进行后续操作'
        }
    }

}

module.exports = {
    auth
}
